/* UNIVERSIDADE FEDERAL DE CAMPINA GRANDE - UFCG
 * Disciplina: Estrutura de Dados e Algoritmos
 * Professor: Rohit
 * Alunos: Alexandre Sales Vasconcelos       Mat.: 20621146
 */
import java.util.Scanner;

/**
 * Classe que implementa a solucao para o problema Timus 1319
 *
 * @version 1.0 2008/07/18
 * @author Alexandre Sales Vasconcelos
 * @see <a href="http://acm.timus.ru/problem.aspx?space=1&num=1319"> Problema 1319</a>
 */

public class Hotel {

	/**
	 * Metodo principal da classe.
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		
		int[][] a = new int[N][N];
		
		int cont = 0;
		int i, j, k=0;
		 
		N--;
		
		while (k <= N) {
			i = 0;
			j = N-k;
			while (i<=k) {
				cont++;
				a[i][j] = cont;
				j++;
				i++;
			}
			k++;
		}
		
		k=1;
		while (k <= N) {
			i = k;
			j = 0;
			while (i<=N) {
				cont++;
				a[i][j] = cont;
				j++;
				i++;
			}
			k++;
		}
		
		for (i = 0; i <= N; i++) {
			for (j = 0; j <= N; j++) {
				System.out.print(a[i][j] + " ");
			}
			System.out.println();
		}
	}
}
